/**
 * Fichier IdentificationListener.java : Définition de classe
 * fr.unice.gnpt.gui.listeners.IdentificationListener : Evénements
 * d'identification
 * 
 * Auteurs : Groupe GNPT : Gastinel, Nicolas, Pellegrino, Trovato
 */
package fr.unice.gnpt.gui.listeners;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JOptionPane;

import fr.unice.gnpt.Main;
import fr.unice.gnpt.gui.Identification;

/**
 * Classe de gestion des événements d'identification
 * <p>
 * Cette classe gère les événements reçus par l'interface graphique lors de
 * l'identification de l'utilisateur. Elle implémente les interfaces {@code
 * ActionListener} et {@code WindowListener}.
 * 
 * @author gnpt
 * @version 0.0.3
 */
public class IdentificationListener implements ActionListener, WindowListener {
	private Identification dialogue;

	/**
	 * Constructeur par défaut.
	 * 
	 * @param d
	 *            la fenêtre d'identification.
	 */
	public IdentificationListener(Identification d) {
		this.dialogue = d;
	}

	/**
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	@Override
	public void actionPerformed(ActionEvent evt) {
		String action = evt.getActionCommand();

		if (action.equals("valide")) {
			if (this.dialogue.getTypeFormulaire().equals("JPA")
					&& !this.dialogue.verifierFormulaireJPA()) {
				JOptionPane
						.showMessageDialog(
								null,
								"Vous devez remplir tous les champs du formulaire\nà l'exception du champs 'Mot de passe' qui est optionnel.",
								"Formulaire non rempli",
								JOptionPane.WARNING_MESSAGE);
			} else {
				this.dialogue.etapeSuivante();
			}
		} else if (action.equals("changementTypePersistance")) {
			this.dialogue.setTypeConnexion();
			this.dialogue.setPreferences(false);
		} else if (action.equals("changementTypeSGBD")) {
			this.dialogue.setPreferences(false);
		} else if (action.equals("explorer")) {
			this.dialogue.afficheFileChooser();
		} else if (action.equals("exit")) {
			Main.exit(0);
		}
	}

	/**
	 * @see java.awt.event.WindowListener#windowActivated(java.awt.event.WindowEvent)
	 */
	@Override
	public void windowActivated(WindowEvent arg0) {
	// TODO Auto-generated method stub

	}

	/**
	 * @see java.awt.event.WindowListener#windowClosed(java.awt.event.WindowEvent)
	 */
	@Override
	public void windowClosed(WindowEvent arg0) {
	// TODO Auto-generated method stub

	}

	/**
	 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
	 */
	@Override
	public void windowClosing(WindowEvent arg0) {
	// TODO Auto-generated method stub

	}

	/**
	 * @see java.awt.event.WindowListener#windowDeactivated(java.awt.event.WindowEvent)
	 */
	@Override
	public void windowDeactivated(WindowEvent arg0) {
	// TODO Auto-generated method stub

	}

	/**
	 * @see java.awt.event.WindowListener#windowDeiconified(java.awt.event.WindowEvent)
	 */
	@Override
	public void windowDeiconified(WindowEvent arg0) {
	// TODO Auto-generated method stub

	}

	/**
	 * @see java.awt.event.WindowListener#windowIconified(java.awt.event.WindowEvent)
	 */
	@Override
	public void windowIconified(WindowEvent arg0) {
	// TODO Auto-generated method stub

	}

	/**
	 * @see java.awt.event.WindowListener#windowOpened(java.awt.event.WindowEvent)
	 */
	@Override
	public void windowOpened(WindowEvent arg0) {
	// TODO Auto-generated method stub

	}

}
